Урок 24 – Камера и подвижный фон

Создадим новую группу и назовем его Camera & Parallax. Добавляем в эту группу действие связанное с камерой.

Проверяем. Так мы на самом деле добавили стандартную камеру, но нам необходима плавная камера. Удаляем это действие, и выбираем такое действие.

Здесь вы можете увидеть функцию lerp(a, b, c). Данная функция выполняет линейную интерполяцию между точкой А и Б. Интерполяция в GDevelop – это переход от точки А к точке через промежуточные точки за определенное время.

Считается интерполяция по следующей формуле: a + (a – b) * c. Выполнятся данная формула будет пока не результат не достигнет значения Б или А.

Допустим а =10 – это точка А, b = 50 – точка Б, а с = 0.05 – это поиск промежуточной точки между А и Б.

Получается 10 + (50 -10) * 0.05 = 12 – это первая точка между А и Б, куда переместится камера. Далее

12 + (50-10)*0.05 = 14 – следующая точка куда переместится камера и т.д.

Если с = 1 то камера сразу же переместится к точки Б и дальнейших вычислений не будет. Если с=0, то камера останется в точке А, т.к. уравнение всегда будет давать результат точки А.

Мы в первом параметре указали положение CameraX() – ее изначальное значение это центр экрана. Затем указали значение Player.X() и третий параметр – поиск точек. Чем меньше это значение, тем дольше переход от точка А к точке Б.

Теперь давайте поставим камеру и по оси Y.

Теперь добавим параллаксный фон.

Создаем новые тайловые спрайты.

Далее создадим 3 новых слоя.

Теперь поместим наши новые объекты в соответствующие слои.

И разместим слои так:

Теперь в событиях для камеры Фона устанавливаем такое значение.

Для остальных камер устанавливаем такие значения.

Готово!)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *